package com.shangxian.giveithome.mapper;

import com.shangxian.giveithome.entity.community.*;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface AttentionMapper {
    /**
     * 关注用户mybatis会自动识别user对象的值，
     * 传到xml文件中，所以需要给对象指定映射。在userDao方法中给user对象添加上@Param注解
     * @param attention
     * @return
     */
    int  attentionUser(Attention attention);

    /**
     * 查询是否已经关注
     */
    int findAttentionUser(@Param("userId") Long userId, @Param("attentionId") Long attentionId);

    /**
     * 取消关注
     */
    int cancelAttention(@Param("userId") Long userId, @Param("attentionId") Long attentionId);

    /**
     * 查询关注的用户
     * @param ids
     * @param pageNumber
     * @param pageSize
     */
    List<AttentionUserList> findAllAttentionUser(List<Long> ids, int pageNumber, int pageSize);

    /**
     * 查询关注用户的数量
     */
    int attentionUserCount(Long userId);
    /**
     * 查询关注用户的id集
     */
    List<Long> findAttentionIds(@Param("userId") Long userId);

    /**
     * 查询所有关注用户的用户信息
     */
    List<AttentionUserList> findAllAttentionUsers(List<Long> ids);

    /**
     * 查询关注人发布的文章数目
     * @param ids
     * @return
     */
    List<IssueCount> findIssueCount(List<Long> ids);



    /**
     *根据用户id查询用户简单信息（用户名， 头像）
     */
    UserList findUserList(Long id);

    /**
     * 根据合集id查询用户合集页面信息
     */
    UserList findUserDetailsByCollectionId(Long id);



    /**
     * 查询关注用户合集详情页面的用户信息
     *
     */
    UserList findAttentionCollectionUserMessage(Long id);


    /**
     * 查询用户社区信息
     */

    AttentionUserList findUserMessage(Long userId);

    /**
     * 查询用户关注状态 0 未关注 1已关注 2 当前为自己的文章
     */
    int findAttentionState(Long userId,Long aid);

    /**
     * 查询用户是否存在
     */
    int findUserExist(Long id);













}
